package model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Query;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import persistence.JPAUtil;

@Entity
public class Checklist {
	@Id
	@GeneratedValue
	private Long id;
	
	@Temporal(TemporalType.DATE)
	private Date data;
	
	@OneToOne
	private Usuario usuario;
	
	@OneToOne
	private Unidade unidade;
	
	private boolean internet;
	private boolean rede;
	private boolean eletrica;
	
	@OneToMany(cascade = CascadeType.ALL)
	@JoinColumn(name="checklist_id")
	private List<Equipamento> equipamentos = new ArrayList<Equipamento>();
	
//	private List<Pendencia> pendencias;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public Unidade getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}

	public boolean isInternet() {
		return internet;
	}

	public void setInternet(boolean internet) {
		this.internet = internet;
	}

	public boolean isRede() {
		return rede;
	}

	public void setRede(boolean rede) {
		this.rede = rede;
	}

	public boolean isEletrica() {
		return eletrica;
	}

	public void setEletrica(boolean eletrica) {
		this.eletrica = eletrica;
	}

	public List<Equipamento> getEquipamentos() {
//		EntityManager em = JPAUtil.getEntityManager();
//		Query sql = em.createNamedQuery("Select c FROM Checklist c WHERE c.unidade.id = 1");
//		equipamentos = sql.getResultList();
		return equipamentos;
	}

	public void setEquipamentos(List<Equipamento> equipamentos) {
		this.equipamentos = equipamentos;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}	
	
}
